import textwrap
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web

from tornado.options import define,options
define("port",default=8000,help="run on the given port",type=int)

class ReverseHandler(tornado.web.RequestHandler):
	def get(self, input):
		self.write(input[::-1])

class WrapHandler(tornado.web.RequestHandler):
	def post(self):
		text = self.get_argument('text','bob')
		width = self.get_argument('width',40)
		self.write(textwrap.fill(text,int(width)))

class IndexHandler(tornado.web.RequestHandler):
	def get(self):
		self.write("Hello,World !!!")
	def write_error(self,status_code,**kwargs):
		self.write("Oh my god,user! You caused a %d error." % status_code)



if __name__ == "__main__":
	tornado.options.parse_command_line()
	app = tornado.web.Application(
		handlers={
			(r"/reverse/(\w+)", ReverseHandler),
			(r"/wrap", WrapHandler),
			(r"/", IndexHandler)
		}
	)
	http_server = tornado.httpserver.HTTPServer(app)
	http_server.listen(options.port)
	tornado.ioloop.IOLoop.instance().start()
